﻿/*
 Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function(){
    function b(a,b,c){
        var k=n[this.id];
        if(k)for(var f=this instanceof CKEDITOR.ui.dialog.checkbox,e=0;e<k.length;e++){
            var d=k[e];
            switch(d.type){
                case g:
                    if(!a)continue;
                    if(null!==a.getAttribute(d.name)){
                    a=a.getAttribute(d.name);
                    f?this.setValue("true"==a.toLowerCase()):this.setValue(a);
                    return
                }
                f&&this.setValue(!!d["default"]);
                    break;
                case o:
                    if(!a)continue;
                    if(d.name in c){
                    a=c[d.name];
                    f?this.setValue("true"==a.toLowerCase()):this.setValue(a);
                    return
                }
                f&&this.setValue(!!d["default"]);
                    break;
                case i:
                    if(!b)continue;
                    if(b.getAttribute(d.name)){
                        a=b.getAttribute(d.name);
                        f?this.setValue("true"==a.toLowerCase()):this.setValue(a);
                        return
                    }
                    f&&this.setValue(!!d["default"])
                    }
                }
        }
        function c(a,b,c){
    var k=n[this.id];
    if(k)for(var f=""===this.getValue(),e=this instanceof CKEDITOR.ui.dialog.checkbox,d=0;d<k.length;d++){
        var h=k[d];
        switch(h.type){
            case g:
                if(!a||"data"==h.name&&b&&!a.hasAttribute("data"))continue;
                var l=this.getValue();
                f||e&&l===h["default"]?a.removeAttribute(h.name):a.setAttribute(h.name,l);
                break;
            case o:
                if(!a)continue;
                l=this.getValue();
                if(f||e&&l===h["default"])h.name in c&&c[h.name].remove();
                else if(h.name in c)c[h.name].setAttribute("value",l);
                else{
                    var p=CKEDITOR.dom.element.createFromHtml("<cke:param></cke:param>",a.getDocument());
                    p.setAttributes({
                        name:h.name,
                        value:l
                    });
                    1>a.getChildCount()?p.appendTo(a):p.insertBefore(a.getFirst())
                    }
                    break;
            case i:
                if(!b)continue;
                l=this.getValue();
                f||e&&l===h["default"]?b.removeAttribute(h.name):b.setAttribute(h.name,l)
                }
            }
    }
    for(var g=1,o=2,i=4,n={
    id:[{
        type:g,
        name:"id"
    }],
    classid:[{
        type:g,
        name:"classid"
    }],
    codebase:[{
        type:g,
        name:"codebase"
    }],
    pluginspage:[{
        type:i,
        name:"pluginspage"
    }],
    src:[{
        type:o,
        name:"movie"
    },{
        type:i,
        name:"src"
    },{
        type:g,
        name:"data"
    }],
    name:[{
        type:i,
        name:"name"
    }],
    align:[{
        type:g,
        name:"align"
    }],
    "class":[{
        type:g,
        name:"class"
    },{
        type:i,
        name:"class"
    }],
    width:[{
        type:g,
        name:"width"
    },{
        type:i,
        name:"width"
    }],
    height:[{
        type:g,
        name:"height"
    },{
        type:i,
        name:"height"
    }],
    hSpace:[{
        type:g,
        name:"hSpace"
    },{
        type:i,
        name:"hSpace"
    }],
    vSpace:[{
        type:g,
        name:"vSpace"
    },{
        type:i,
        name:"vSpace"
    }],
    style:[{
        type:g,
        name:"style"
    },{
        type:i,
        name:"style"
    }],
    type:[{
        type:i,
        name:"type"
    }]
    },m="play loop menu quality scale salign wmode bgcolor base flashvars allowScriptAccess allowFullScreen".split(" "),j=0;j<m.length;j++)n[m[j]]=[{
    type:i,
    name:m[j]
    },{
    type:o,
    name:m[j]
    }];
m=["allowFullScreen","play","loop","menu"];
for(j=0;j<m.length;j++)n[m[j]][0]["default"]=n[m[j]][1]["default"]=!0;
CKEDITOR.dialog.add("flash",function(a){
    var g=!a.config.flashEmbedTagOnly,i=a.config.flashAddEmbedTag||a.config.flashEmbedTagOnly,k,f="<div>"+
    CKEDITOR.tools.htmlEncode(a.lang.common.preview)+'<br><div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading">&nbsp;</div></div><div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';
    return{
        title:a.lang.flash.title,
        minWidth:420,
        minHeight:310,
        onShow:function(){
            this.fakeImage=this.objectNode=this.embedNode=null;
            k=new CKEDITOR.dom.element("embed",a.document);
            var e=this.getSelectedElement();
            if(e&&e.data("cke-real-element-type")&&
                "flash"==e.data("cke-real-element-type")){
                this.fakeImage=e;
                var d=a.restoreRealElement(e),h=null,b=null,c={};
                
                if("cke:object"==d.getName()){
                    h=d;
                    d=h.getElementsByTag("embed","cke");
                    0<d.count()&&(b=d.getItem(0));
                    for(var d=h.getElementsByTag("param","cke"),g=0,i=d.count();g<i;g++){
                        var f=d.getItem(g),j=f.getAttribute("name"),f=f.getAttribute("value");
                        c[j]=f
                        }
                    }else"cke:embed"==d.getName()&&(b=d);
            this.objectNode=h;
            this.embedNode=b;
            this.setupContent(h,b,c,e)
            }
        },
onOk:function(){
    var e=null,d=null,b=null;
    if(this.fakeImage)e=
        this.objectNode,d=this.embedNode;
    else if(g&&(e=CKEDITOR.dom.element.createFromHtml("<cke:object></cke:object>",a.document),e.setAttributes({
        classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
        codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
    })),i)d=CKEDITOR.dom.element.createFromHtml("<cke:embed></cke:embed>",a.document),d.setAttributes({
        type:"application/x-shockwave-flash",
        pluginspage:"http://www.macromedia.com/go/getflashplayer"
    }),e&&d.appendTo(e);
    if(e)for(var b={},c=e.getElementsByTag("param","cke"),f=0,j=c.count();f<j;f++)b[c.getItem(f).getAttribute("name")]=c.getItem(f);
    c={};
    
    f={};
    
    this.commitContent(e,d,b,c,f);
    e=a.createFakeElement(e||d,"cke_flash","flash",!0);
    e.setAttributes(f);
    e.setStyles(c);
    this.fakeImage?(e.replace(this.fakeImage),a.getSelection().selectElement(e)):a.insertElement(e)
    },
onHide:function(){
    this.preview&&this.preview.setHtml("")
    },
contents:[{
    id:"info",
    label:a.lang.common.generalTab,
    accessKey:"I",
    elements:[{
        type:"vbox",
        padding:0,
        children:[{
            type:"hbox",
            widths:["280px","110px"],
            align:"right",
            children:[{
                id:"src",
                type:"text",
                label:a.lang.common.url,
                required:!0,
                validate:CKEDITOR.dialog.validate.notEmpty(a.lang.flash.validateSrc),
                setup:b,
                commit:c,
                onLoad:function(){
                    var a=this.getDialog(),b=function(b){
                        k.setAttribute("src",b);
                        a.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(k.getAttribute("src"))+'" type="application/x-shockwave-flash"></embed>')
                        };
                        
                    a.preview=a.getContentElement("info","preview").getElement().getChild(3);
                    this.on("change",function(a){
                        a.data&&a.data.value&&b(a.data.value)
                        });
                    this.getInputElement().on("change",function(){
                        b(this.getValue())
                        },this)
                    }
                },{
            type:"button",
            id:"browse",
            filebrowser:"info:src",
            hidden:!0,
            style:"display:inline-block;margin-top:10px;",
            label:a.lang.common.browseServer
            }]
        }]
    },{
    type:"hbox",
    widths:["25%","25%","25%","25%","25%"],
    children:[{
        type:"text",
        id:"width",
        style:"width:95px",
        label:a.lang.common.width,
        validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",
            a.lang.common.width)),
        setup:b,
        commit:c
    },{
        type:"text",
        id:"height",
        style:"width:95px",
        label:a.lang.common.height,
        validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",a.lang.common.height)),
        setup:b,
        commit:c
    },{
        type:"text",
        id:"hSpace",
        style:"width:95px",
        label:a.lang.flash.hSpace,
        validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateHSpace),
        setup:b,
        commit:c
    },{
        type:"text",
        id:"vSpace",
        style:"width:95px",
        label:a.lang.flash.vSpace,
        validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateVSpace),
        setup:b,
        commit:c
    }]
    },{
    type:"vbox",
    children:[{
        type:"html",
        id:"preview",
        style:"width:95%;",
        html:f
    }]
    }]
},{
    id:"Upload",
    hidden:!0,
    filebrowser:"uploadButton",
    label:a.lang.common.upload,
    elements:[{
        type:"file",
        id:"upload",
        label:a.lang.common.upload,
        size:38
    },{
        type:"fileButton",
        id:"uploadButton",
        label:a.lang.common.uploadSubmit,
        filebrowser:"info:src",
        "for":["Upload","upload"]
        }]
    },{
    id:"properties",
    label:a.lang.flash.propertiesTab,
    elements:[{
        type:"hbox",
        widths:["50%","50%"],
        children:[{
            id:"scale",
            type:"select",
            label:a.lang.flash.scale,
            "default":"",
            style:"width : 100%;",
            items:[[a.lang.common.notSet,""],[a.lang.flash.scaleAll,"showall"],[a.lang.flash.scaleNoBorder,"noborder"],[a.lang.flash.scaleFit,"exactfit"]],
            setup:b,
            commit:c
        },{
            id:"allowScriptAccess",
            type:"select",
            label:a.lang.flash.access,
            "default":"",
            style:"width : 100%;",
            items:[[a.lang.common.notSet,""],[a.lang.flash.accessAlways,"always"],[a.lang.flash.accessSameDomain,"samedomain"],[a.lang.flash.accessNever,"never"]],
            setup:b,
            commit:c
        }]
        },{
        type:"hbox",
        widths:["50%","50%"],
        children:[{
            id:"wmode",
            type:"select",
            label:a.lang.flash.windowMode,
            "default":"",
            style:"width : 100%;",
            items:[[a.lang.common.notSet,""],[a.lang.flash.windowModeWindow,"window"],[a.lang.flash.windowModeOpaque,"opaque"],[a.lang.flash.windowModeTransparent,"transparent"]],
            setup:b,
            commit:c
        },{
            id:"quality",
            type:"select",
            label:a.lang.flash.quality,
            "default":"high",
            style:"width : 100%;",
            items:[[a.lang.common.notSet,""],[a.lang.flash.qualityBest,"best"],[a.lang.flash.qualityHigh,"high"],[a.lang.flash.qualityAutoHigh,"autohigh"],
            [a.lang.flash.qualityMedium,"medium"],[a.lang.flash.qualityAutoLow,"autolow"],[a.lang.flash.qualityLow,"low"]],
            setup:b,
            commit:c
        }]
        },{
        type:"hbox",
        widths:["50%","50%"],
        children:[{
            id:"align",
            type:"select",
            label:a.lang.common.align,
            "default":"",
            style:"width : 100%;",
            items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.flash.alignAbsBottom,"absBottom"],[a.lang.flash.alignAbsMiddle,"absMiddle"],[a.lang.flash.alignBaseline,"baseline"],[a.lang.common.alignBottom,"bottom"],[a.lang.common.alignMiddle,
            "middle"],[a.lang.common.alignRight,"right"],[a.lang.flash.alignTextTop,"textTop"],[a.lang.common.alignTop,"top"]],
            setup:b,
            commit:function(a,b,f,g,i){
                var j=this.getValue();
                c.apply(this,arguments);
                j&&(i.align=j)
                }
            },{
        type:"html",
        html:"<div></div>"
    }]
    },{
    type:"fieldset",
    label:CKEDITOR.tools.htmlEncode(a.lang.flash.flashvars),
    children:[{
        type:"vbox",
        padding:0,
        children:[{
            type:"checkbox",
            id:"menu",
            label:a.lang.flash.chkMenu,
            "default":!0,
            setup:b,
            commit:c
        },{
            type:"checkbox",
            id:"play",
            label:a.lang.flash.chkPlay,
            "default":!0,
            setup:b,
            commit:c
        },{
            type:"checkbox",
            id:"loop",
            label:a.lang.flash.chkLoop,
            "default":!0,
            setup:b,
            commit:c
        },{
            type:"checkbox",
            id:"allowFullScreen",
            label:a.lang.flash.chkFull,
            "default":!0,
            setup:b,
            commit:c
        }]
        }]
    }]
},{
    id:"advanced",
    label:a.lang.common.advancedTab,
    elements:[{
        type:"hbox",
        children:[{
            type:"text",
            id:"id",
            label:a.lang.common.id,
            setup:b,
            commit:c
        }]
        },{
        type:"hbox",
        widths:["45%","55%"],
        children:[{
            type:"text",
            id:"bgcolor",
            label:a.lang.flash.bgcolor,
            setup:b,
            commit:c
        },{
            type:"text",
            id:"class",
            label:a.lang.common.cssClass,
            setup:b,
            commit:c
        }]
        },{
        type:"text",
        id:"style",
        validate:CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle),
        label:a.lang.common.cssStyle,
        setup:b,
        commit:c
    }]
    }]
}
})
})();